package Collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 对字符串集合进行排序
 */
public class SortString {
    public static void main(String[] args) {
        List<String> list =new ArrayList<>();
        list.add("王克晶");
        list.add("传奇老师很帅");
        list.add("伟超老师");
        System.out.println("list元素数据:"+list);//list元素数据:[王克晶, 传奇老师很帅, 伟超老师]
        Collections.sort(list);
        System.out.println("list排序后数据:"+list);//list排序后数据:[伟超老师, 传奇老师很帅, 王克晶]
        /*
      * 对英文字符串排序时，会按首字母ASCII码来排
      * 若首字母相同，则比较第2个字母ASCII码，以此类推*/

        /*
        * compare()方法用于定义o1和o2比较大小的规则，并且通过返回值表达大小关系
        * 返回值实现的要求:----------不用纠结，记住下面的结论即可
                1)如果返回值>0则表达的是o1>o2
                2)如果返回值<0则表达的是o1<o2
                3)如果返回值=0则表达的是o1=o2
              结论:
                1)前面的-后面的-------------升序
                2)后面的-前面的-------------降序*/
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                //return o1.length()-o2.length();//升序
                return  o2.length()-o1.length();//降序

            }
        });
        System.out.println("list排序后数据:"+list);//list排序后数据:[传奇老师很帅, 伟超老师, 王克晶] 降序
    }
}
